﻿using Dapper;
using MySql.Data.MySqlClient;
using StackExchange.Profiling.Data;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebAppNET461MVC5.Models;

namespace WebAppNET461MVC5.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            // SqlConnection 连接 SQL server 成功。
            // 1、Server=.\\SQLEXPRESS; 必须有实例名。
            // 2、可以没有 db.Open();
            // 3、查询时表的名称 FROM dbo.sys_user 中可以没有 dbo.。
            // using (IDbConnection db = new SqlConnection("Server=.\\SQLEXPRESS;Database=cms_mvn;User Id=sa;Password=123456"))

            // 试图 ProfiledDbConnection 对 SqlConnection 进行包装，查看执行的 SQL，失败了。
            // 不过程序是成功的，页面显示出来了，只是SQL 语句看不到而已。
            // using (IDbConnection db = new ProfiledDbConnection(new SqlConnection("Server=.\\SQLEXPRESS;Database=cms_mvn;User Id=sa;Password=123456"), null))

            // 试图 SqlConnection 连接 MySQL，失败了。看报错信息，好像还是 SQLserver 的实例名问题。貌似不支持 MySQL 吧。
            // using (IDbConnection db = new SqlConnection("Server=222.73.236.109;Database=cms_mvn;User Id=root;Password=LXYG5QF@qsgct1s"))

            // MySqlConnection 连接 MySQL 成功。
            // using (MySqlConnection db = new MySqlConnection("Data Source=222.73.236.109;Database=cms_mvn;User Id=root;Password=LXYG5QF@qsgct1s;CharSet=utf8;port=3306"))

            using (IDbConnection db = new SqlConnection("Server=222.73.236.109;Database=cms_mvn;User Id=root;Password=LXYG5QF@qsgct1s"))
            {
                //db.Open();
                string sql = $"SELECT so_name AS Name,so_account AS Account FROM sys_user";
                IEnumerable<UserModel> list = db.Query<UserModel>(sql);
                List<UserModel> userList = list.ToList();
                System.Diagnostics.Debug.WriteLine(userList == null);
                System.Diagnostics.Debug.WriteLine(userList.Count);
                foreach (UserModel user in userList) {
                    System.Diagnostics.Debug.WriteLine(user.Name);
                }
                
            }
                return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}